module;

#include "phasar/Utils/AdjacencyList.h"
#include "phasar/Utils/AlignNum.h"
#include "phasar/Utils/AnalysisPrinterBase.h"
#include "phasar/Utils/AnalysisProperties.h"
#include "phasar/Utils/Average.h"
#include "phasar/Utils/BitSet.h"
#include "phasar/Utils/BitVectorSet.h"
#include "phasar/Utils/BoxedPointer.h"
#include "phasar/Utils/ByRef.h"
#include "phasar/Utils/ChronoUtils.h"
#include "phasar/Utils/Compressor.h"
#include "phasar/Utils/DFAMinimizer.h"
#include "phasar/Utils/DOTGraph.h"
#include "phasar/Utils/DebugOutput.h"
#include "phasar/Utils/DefaultAnalysisPrinter.h"
#include "phasar/Utils/DefaultValue.h"
#include "phasar/Utils/EmptyBaseOptimizationUtils.h"
#include "phasar/Utils/EnumFlags.h"
#include "phasar/Utils/EquivalenceClassMap.h"
#include "phasar/Utils/ErrorHandling.h"
#include "phasar/Utils/GraphTraits.h"
#include "phasar/Utils/IO.h"
#include "phasar/Utils/InitPhasar.h"
#include "phasar/Utils/IotaIterator.h"
#include "phasar/Utils/JoinLattice.h"
#include "phasar/Utils/Macros.h"
#include "phasar/Utils/MaybeUniquePtr.h"
#include "phasar/Utils/NullAnalysisPrinter.h"
#include "phasar/Utils/Nullable.h"
#include "phasar/Utils/OnTheFlyAnalysisPrinter.h"
#include "phasar/Utils/PAMM.h"
#include "phasar/Utils/PAMMMacros.h"
#include "phasar/Utils/PointerUtils.h"
#include "phasar/Utils/Printer.h"
#include "phasar/Utils/RepeatIterator.h"
#include "phasar/Utils/SCCGeneric.h"
#include "phasar/Utils/SemiRing.h"
#include "phasar/Utils/Soundness.h"
#include "phasar/Utils/StableVector.h"
#include "phasar/Utils/Table.h"
#include "phasar/Utils/TableWrappers.h"
#include "phasar/Utils/Timer.h"
#include "phasar/Utils/TypeTraits.h"
#include "phasar/Utils/TypedVector.h"
#include "phasar/Utils/Utilities.h"

export module phasar.utils;

export namespace psr {
using psr::AdjacencyList;
using psr::AlignNum;
using psr::AlignStr;
using psr::AnalysisPrinterBase;
using psr::AnalysisProperties;
using psr::GraphTraits;
using psr::to_string;
using psr::operator<<;
using psr::AnalysisPropertiesMixin;
using psr::BitSet;
using psr::BitVectorSet;
using psr::BoxedConstPtr;
using psr::BoxedPtr;
using psr::CanEfficientlyPassByValue;
using psr::hms;
using psr::intersectWith;
using psr::PrettyPrinter;
using psr::Sampler;
using psr::operator<<;
using psr::createEquivalentGraphFrom;
using psr::DefaultAnalysisPrinter;
using psr::DOTConfig;
using psr::DOTEdge;
using psr::DOTNode;
using psr::getDefaultValue;
using psr::minimizeGraph;
using psr::Warning;
using psr::operator<;
using psr::operator==;
using psr::DOTFactSubGraph;
using psr::DOTFunctionSubGraph;
using psr::DOTGraph;
using psr::DummyPair;
using psr::EmptyType;
using psr::EnumFlagAutoBool;
using psr::operator&=;
using psr::operator|;
using psr::operator|=;
using psr::operator^;
using psr::operator^=;
using psr::operator~;
using psr::DefaultNodeTransform;
using psr::EquivalenceClassMap;
using psr::EquivalenceClassMapNG;
using psr::getOrEmpty;
using psr::getOrNull;
using psr::getOrThrow;
using psr::GraphTraits;
using psr::hasFlag;
using psr::InitPhasar;
using psr::iota;
using psr::IotaIterator;
using psr::is_const_graph;
using psr::is_graph;
using psr::is_graph_edge;
using psr::is_graph_trait;
using psr::is_removable_graph_trait_v;
using psr::is_reservable_graph_trait_v;
using psr::is_weighted_const_graph;
using psr::is_weighted_graph;
using psr::JoinLattice;
using psr::JoinLatticeTraits;
using psr::Logger;
using psr::mapValue;
using psr::MaybeUniquePtr;
using psr::NonTopBotValue;
using psr::openFileStream;
using psr::parseSeverityLevel;
using psr::printGraph;
using psr::readFile;
using psr::readFileOrErr;
using psr::readFileOrNull;
using psr::readJsonFile;
using psr::readTextFile;
using psr::readTextFileOrErr;
using psr::readTextFileOrNull;
using psr::reverseGraph;
using psr::setFlag;
using psr::SeverityLevel;
using psr::to_string;
using psr::unsetFlag;
using psr::writeTextFile;
using psr::operator<<;
using psr::DToString;
using psr::FToString;
using psr::getPointerFrom;
using psr::LToString;
using psr::NToString;
using psr::NullAnalysisPrinter;
using psr::OnTheFlyAnalysisPrinter;
using psr::PAMM;
using psr::PAMM_SEVERITY_LEVEL;
using psr::repeat;
using psr::RepeatIterator;
using psr::SemiRing;
using psr::Soundness;
using psr::toSoundness;
using psr::toString;
using psr::unwrapNullable;
using psr::operator<<;
using psr::adl_to_string;
using psr::AreEqualityComparable;
using psr::assertAllNotNull;
using psr::assertNotNull;
using psr::Compressor;
using psr::computePowerSet;
using psr::computeSCCDependencies;
using psr::computeSCCIterative;
using psr::computeSCCOrder;
using psr::computeSCCs;
using psr::createTimeStamp;
using psr::DefaultConstruct;
using psr::DenseSet;
using psr::DenseTable1d;
using psr::DummyDenseTable1d;
using psr::DummyUnorderedTable1d;
using psr::ElementType;
using psr::FalseFn;
using psr::forward_like;
using psr::has_adl_to_string_v;
using psr::has_erase_iterator_v;
using psr::has_getAsJson;
using psr::has_getHashCode;
using psr::has_isInteresting_v;
using psr::has_llvm_dense_map_info;
using psr::has_std_hash;
using psr::has_str_v;
using psr::HasDepth;
using psr::HasIsConstant;
using psr::identity;
using psr::IdentityFn;
using psr::IgnoreArgs;
using psr::intersectWith;
using psr::is_crtp_base_of_v;
using psr::is_explicitly_convertible_to;
using psr::is_incrementable;
using psr::is_iterable_over_v;
using psr::is_iterable_v;
using psr::is_llvm_hashable_v;
using psr::is_llvm_printable_v;
using psr::is_pair_v;
using psr::is_printable_v;
using psr::is_std_hashable_v;
using psr::is_std_printable_v;
using psr::is_string_like_v;
using psr::is_tuple_v;
using psr::is_variant;
using psr::is_variant_v;
using psr::isConstructor;
using psr::IsEqualityComparable;
using psr::IsLessComparable;
using psr::isMangled;
using psr::Overloaded;
using psr::remove_by_index;
using psr::reserveIfPossible;
using psr::SCCDependencyGraph;
using psr::SCCHolder;
using psr::SCCId;
using psr::SCCOrder;
using psr::scope_exit;
using psr::SimpleTimer;
using psr::SmallDenseTable1d;
using psr::StableVector;
using psr::StringIDLess;
using psr::Table;
using psr::Timer;
using psr::TrueFn;
using psr::TypedVector;
using psr::UnorderedSet;
using psr::UnorderedTable1d;
using psr::variant_idx;

} // namespace psr
